/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/*
 * Mensual.java
 *
 * Created on 02-sep-2011, 14:17:32
 */
package proyectoempresa.igu;

import Reportes.IniciarReporte;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JOptionPane;
import proyectoempresa.DAO.ContenedorReporteGeneralCuentasDao;
import proyectoempresa.DAO.ReporteCuentasMensualDao;
import proyectoempresa.DAO.ReporteGeneralCuentasmesnsualDao;
import proyectoempresa.modelo.ContenedorReporteGeneralCuentas;
import proyectoempresa.modelo.ReporteCuentasMensual;
import proyectoempresa.modelo.ReporteGeneralMesual;

/**
 *
 * @author Diego
 */
public class Mensual extends javax.swing.JDialog {

    /** Creates new form Mensual */
    public Mensual(java.awt.Frame parent, boolean modal) {
        super(parent, modal);
        initComponents();
        setLocationRelativeTo(null);
    }

    /** This method is called from within the constructor to
     * initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is
     * always regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jCalendar1 = new com.toedter.calendar.JCalendar();
        buttonColoredAction1 = new org.edisoncor.gui.button.ButtonColoredAction();
        jLabel1 = new javax.swing.JLabel();
        calendarMes = new com.toedter.calendar.JMonthChooser();

        jCalendar1.setName("jCalendar1"); // NOI18N

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setUndecorated(true);

        buttonColoredAction1.setText("REPORTE");
        buttonColoredAction1.setName("buttonColoredAction1"); // NOI18N
        buttonColoredAction1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                buttonColoredAction1ActionPerformed(evt);
            }
        });

        jLabel1.setText("REPORTE MENSUAL");
        jLabel1.setName("jLabel1"); // NOI18N

        calendarMes.setName("calendarMes"); // NOI18N

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(27, 27, 27)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jLabel1)
                            .addComponent(calendarMes, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                    .addGroup(layout.createSequentialGroup()
                        .addGap(18, 18, 18)
                        .addComponent(buttonColoredAction1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap(27, Short.MAX_VALUE))
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addGap(20, 20, 20)
                .addComponent(jLabel1)
                .addGap(18, 18, 18)
                .addComponent(calendarMes, javax.swing.GroupLayout.PREFERRED_SIZE, 68, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(32, 32, 32)
                .addComponent(buttonColoredAction1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(24, Short.MAX_VALUE))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents
    private void buttonColoredAction1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonColoredAction1ActionPerformed
        try {
            ReporteCuentasMensual rm = null;
            ReporteCuentasMensualDao rmd = null;
            ReporteGeneralMesual rcg = null;
            ReporteGeneralCuentasmesnsualDao rcgd = null;
            List<ContenedorReporteGeneralCuentas> listag = null;
            ContenedorReporteGeneralCuentasDao rgd = new ContenedorReporteGeneralCuentasDao(null);
            String paramBusqueda=String.valueOf(calendarMes.getMonth() + 1).trim();
          //  JOptionPane.showMessageDialog(null,paramBusqueda);
            listag = rgd.buscarTodos();
         //   JOptionPane.showMessageDialog(null, listag);
            if (listag.isEmpty()) {
                JOptionPane.showMessageDialog(null, "No ha Realisado ninguna Actividad Economica  al Momento ");
            } else {
                if (this.metodocomprueva(paramBusqueda)==false) {
                     JOptionPane.showMessageDialog(null, "No ha Realisado ninguna Actividad Economica en  el Mes de:  "+retornaMes(calendarMes.getMonth()));
                }else{
                rcg = new ReporteGeneralMesual();
                rcgd = new ReporteGeneralCuentasmesnsualDao(rcg);
                rcg.setFecha(this.retornaMes(calendarMes.getMonth()));
                rcg.setParamBusqueda(paramBusqueda);
                rcgd.persistence();
                for (proyectoempresa.modelo.ContenedorReporteGeneralCuentas objeto : listag) {
                    // JOptionPane.showMessageDialog(null,this.validarfecha(objeto.getFecha().trim(), paramBusqueda));
                    if (this.validarfecha(objeto.getFecha(), paramBusqueda)) {
                       // JOptionPane.showMessageDialog(null,this.validarfecha(objeto.getFecha().trim(), paramBusqueda));
                        rm = new ReporteCuentasMensual();
                        rmd = new ReporteCuentasMensualDao(rm);
                        rm.setParamBusqueda(paramBusqueda);
                        rm.setFechaMes(objeto.getFecha());
                        rm.setTitulo_DescripcionMes(objeto.getTitulo_Descripcion());
                        rm.setEgresosMes(objeto.getEgresos());
                        rm.setIngresosMes(objeto.getIngresos());
                        rm.setPrecio_facturaMes(objeto.getPrecio_factura());

                        if (objeto.getFactura_Numer().equals("0")) {
                            rm.setFactura_NumerMes("  ");
                        } else {
                            rm.setFactura_NumerMes(objeto.getFactura_Numer());
                        }
                        if (objeto.getCantidad_factura().equals("0.0")) {
                            rm.setCantidad_facturaMes("  ");
                        } else {
                            rm.setCantidad_facturaMes(objeto.getDescuento());
                        }
                        rm.setCantidad_facturaMes(objeto.getCantidad_factura());
                        if (objeto.getDescuento().equals("0.0")) {
                            rm.setDescuentoMes("  ");
                        } else {
                            rm.setDescuentoMes(objeto.getDescuento());
                        }
                        rcg.agregar(rm);
                        rmd.persistence();
                        rcg.sumaIngresos();
                        rcg.suEgresos();
                        rcg.activoTotal();
                        rcgd.update();
                    }
                }
                List<ReporteGeneralMesual> reporteGeneralMensual = new ArrayList<ReporteGeneralMesual>();
                ReporteGeneralCuentasmesnsualDao rcgm = new ReporteGeneralCuentasmesnsualDao(null);
                reporteGeneralMensual = rcgm.buscarTodos();
                int pos = reporteGeneralMensual.size();
                //JOptionPane.showMessageDialog(null, pos);
                int d;
                if (pos > 1) {
                    d = pos - 2;
                    JOptionPane.showMessageDialog(null, d);
                    ReporteGeneralMesual rcm = reporteGeneralMensual.get(d);
                    //JOptionPane.showMessageDialog(null, "se eliminara" + rcm);
                    rcgm = new ReporteGeneralCuentasmesnsualDao(rcm);
                    if (rcm.getParamBusqueda().equals(paramBusqueda)) {
                      //  JOptionPane.showMessageDialog(null, "se elimino");
                        rcgm.remover();
                        // cpcd.update();
                    }
                }
                IniciarReporte ir = new IniciarReporte();
                ir.ejecutarReporteMensual(paramBusqueda);
            }
            
            }
            dispose();
        } catch (Exception e) {
            JOptionPane.showMessageDialog(null, e);

        }


}//GEN-LAST:event_buttonColoredAction1ActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                Mensual dialog = new Mensual(new javax.swing.JFrame(), true);
                dialog.addWindowListener(new java.awt.event.WindowAdapter() {

                    public void windowClosing(java.awt.event.WindowEvent e) {
                        System.exit(0);
                    }
                });
                dialog.setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private org.edisoncor.gui.button.ButtonColoredAction buttonColoredAction1;
    private com.toedter.calendar.JMonthChooser calendarMes;
    private com.toedter.calendar.JCalendar jCalendar1;
    private javax.swing.JLabel jLabel1;
    // End of variables declaration//GEN-END:variables

    public boolean validarfecha(String fecha, String mes) {
      //  JOptionPane.showMessageDialog(null, fecha+""+mes);
        String[] arreg = new String[3];
        arreg = fecha.split("/");
        if (Integer.valueOf(arreg[1]).equals(Integer.valueOf(mes))) {
            // JOptionPane.showMessageDialog(null,"bien");
            return true;
        } else {
            return false;
        }
    }

    public String retornaMes(int m) {
        String[] meses = {"ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"};
        return meses[m].trim();
    }

    public boolean metodocomprueva(String mes){
        boolean b=false;
             List<ContenedorReporteGeneralCuentas> listag = null;
            ContenedorReporteGeneralCuentasDao rgd = new ContenedorReporteGeneralCuentasDao(null);
            listag=rgd.buscarTodos();
            for (ContenedorReporteGeneralCuentas contenedorReporteGeneralCuentas : listag) {
                if (this.validarfecha(contenedorReporteGeneralCuentas.getFecha(), mes)) {
                    b=true;
                  }
        }
            return b;
    }
}
